pycharm ssh远程解释器连接docker容器环境变量缺失

您所在的位置:网站首页 pycharm 数据库 数据显示不全 pycharm ssh远程解释器连接docker容器环境变量缺失

pycharm ssh远程解释器连接docker容器环境变量缺失

2023-05-27 17:31| 来源: 网络整理| 查看: 265

背景介绍

利用pycharm ssh interpreter 运行部署在容器中的python文件,发现无法调用torch的gpu版本。 但是使用docker exec的方式进入容器不存在该问题。 通过在python的调试模式下执行os.environ,以及在容器中执行ENV,对比发现pycharm通过ssh远程登录执行程序的环境变量与docker exec进入容器的环境变量不同。

解决方案

首先参考了:https://blog.csdn.net/thlzjfefe/article/details/104777283

在/etc/profile中添加了export $(cat /proc/1/environ |tr '\0' '\n' | xargs)

发现通过终端直接ssh登录容器,在shell中执行程序时可以获得正确的环境变量。但是: 使用pycharm ssh interpreter运行程序仍然无法获得/etc/profile中的环境变量。

经过网上调研,感谢博客https://blog.csdn.net/vivianXuejun/article/details/80557287 对bash的四种模式:interactive + login shell、non-interactive + login shell、interactive + non-login shell、non-interactive + non-login shell进行了详细的解释。 在这里插入图片描述

使用pycharm ssh interpreter直接远程运行程序属于non-interactive + non-login shell模式。程序执行前会根据BASH_ENV指定的配置文件进行加载。

通过echo BASH_ENV$,得到配置文件路径为:

/etc/bash.bashrc

将export $(cat /proc/1/environ |tr '\0' '\n' | xargs)加入/etc/bash.bashrc中,问题成功解决。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3